﻿using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace GameX.GameContent
{
    interface ISpriteSheet
    {
        Rectangle GetSpriteBounds(uint tile);

        Texture2D Texture
        {
            get;
        }

        int GetTileWidth(uint tile);

        int GetTileHeight(uint tile);

        /// <summary>
        /// If the tile is made of multiple rectangles, then return the rectangle,
        /// which contains the base placement point of the tile.
        /// For example, for a tree this may be the rectangle where the stem starts.
        /// </summary>
        /// <param name="tile">Tile index</param>
        /// <returns>Tile's base placement point rectangle</returns>
        Rectangle GetTileBase(uint tile);
    }
}
